Skip to content

fix(settings): fix Tavily key label cursor and reunite the apply link - #3821

Open
liuxiaocs7 wants to merge 1 commit into
apache:mainfrom
liuxiaocs7:fix/web-search-tavily-cursor-and-apply-link
Open

fix(settings): fix Tavily key label cursor and reunite the apply link#3821
liuxiaocs7 wants to merge 1 commit into
apache:mainfrom
liuxiaocs7:fix/web-search-tavily-cursor-and-apply-link

Conversation

@liuxiaocs7

@liuxiaocs7 liuxiaocs7 commented Aug 25, 2026

Copy link
Copy Markdown
Member

Summary

Two small UI papercuts in Settings → Web search's Tavily key field:

  • Misleading cursor. The key label ("Tavily 密钥" / "Tavily key") showed a hand (pointer) cursor on hover but forwards no click. Astryx FieldLabel renders an InputGroup label as a bare <span class="astryx-field-label"> (isGroupLabel), which carries StyleX cursor: pointer; native-cursor.css (the single owner of the "hand cursor is for links only" convention) only neutralized real <label> elements, so the span slipped through. Match the stable themeProps class (.astryx-field-label) so group-label spans get cursor: default like every other field label. This is app-wide by design — the same shared PasswordInput backs bot tokens, provider API keys, and the proxy password.
  • Apply URL split from its label. "申请地址:" / "Apply at:" rendered above the input as the field description, while the tavily.com link rendered on its own line below the input, so the key input split the label from its URL. Fold the link into the description as a ReactNode so "申请地址:tavily.com" reads as one unit above the input — a pattern Astryx FieldLabel supports (its click forwarding skips nested interactive content); only InputGroup/Field under-declare the description prop as string, papered over by one cast in PasswordInput.

Fixes #3820

Verification

  • tsc -p tsconfig.renderer.json --noEmit — passes
  • biome lint on the changed files — passes

Before / after (Tavily key field):

Before                               After
─────────────────────────────       ─────────────────────────────
Tavily 密钥        (hand cursor)     Tavily 密钥        (arrow cursor)
密钥只保存在本机。申请地址:           密钥只保存在本机。申请地址:tavily.com
┌───────────────────────────┐        ┌───────────────────────────┐
│ tvly-xxxxxxxx      👁 📋 │          │ tvly-xxxxxxxx      👁 📋 │
└───────────────────────────┘        └───────────────────────────┘
tavily.com   ← split below input

before

tavily-key-field-before

after
tavily-key-field-after

Review focus

The cursor fix in native-cursor.css is intentionally app-wide: it neutralizes the hand cursor on every InputGroup group-label span, not just this page.

AI use

Select exactly one:

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: Claude Code (Opus 4.8) — investigated the root cause, wrote the code changes, and drafted this PR. Reviewed by the author. The squash commit carries a Generated-by trailer.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No

Two UI papercuts in Settings → Web search's Tavily key field:

- The key label ("Tavily 密钥") showed a hand cursor on hover but
  forwards no click. Astryx FieldLabel renders an InputGroup label as a
  bare <span class="astryx-field-label"> (isGroupLabel), which carries
  StyleX cursor:pointer; native-cursor.css only neutralized real <label>
  elements, so the span slipped through. Match the stable themeProps
  class so group-label spans get cursor:default like every other field
  label (app-wide — the same shared PasswordInput backs bot tokens,
  provider keys, and the proxy password).

- "申请地址:" rendered above the input as the field description while the
  tavily.com link rendered below it, so the key input split the label
  from its URL. Fold the link into the description as a ReactNode so
  "申请地址:tavily.com" reads as one unit above the input — a pattern
  Astryx FieldLabel supports (its click forwarding skips nested
  interactive content); only InputGroup/Field under-declare the prop as
  string, papered over by one cast in PasswordInput.

Generated-by: Claude Code (Opus 4.8)

@Astro-Han Astro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update on 4df006b: GO — no P0-P3. Fixes cursor on field label and groups Tavily apply link into description, hosted test green.

简体中文该头无阻断。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Web search settings: Tavily key label shows a hand cursor and the apply URL is split from its label

2 participants